﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades.Espectaculos;
using Negocio.Espectaculos;

public partial class Espectaculos_Configuracion_frmRegistroArtista : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {

            lblMensaje.Text = "Ingrese los datos del artista.";
            cargarCombos();

            if (!string.IsNullOrEmpty(Request.QueryString["id"]))
            {
                //cargar editar
                int id = Convert.ToInt32(Request.QueryString["id"].ToString());

                if (!string.IsNullOrEmpty(Request.QueryString["ref"]))
                {
                    //cargar editar
                    string refer = Request.QueryString["ref"].ToString();
                    if (refer == "reg")
                    {
                        lblMensaje.Text = "Está editando el registro nro. : " + id.ToString();
                        //lblMensaje.Text = "Se completó correctamente el registro nro : " + id.ToString();
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('La operación se realizó correctamente.');", true);
                    }
                    else if (refer == "edit")
                    {
                        lblMensaje.Text = "Está editando el registro nro. : " + id.ToString();
                    }

                }
                hdIdartista.Value = id.ToString();
                cargarArtista(id);
            }
            else
            {
                chkActivo.Checked = true;
            }
        }
    }

    private void cargarArtista(int id)
    {
        EspArtista obj = EspArtistaBLL.ObtenerrArtista(id);

        txtNombre.Text = obj.Nombre;
        txtCorreo.Text = obj.Correo;
        txtDireccion.Text = obj.Direccion;
        txtobservacion.Text = obj.Observacion;
        txtReferencia.Text = obj.Referencia;
        txtTelefono.Text = obj.Telefono;
        chkActivo.Checked = (obj.Estado == 1 ? true : false);

        ddlTipo.SelectedValue = obj.IdTipo.ToString();

        cargarSubtipo(obj.IdTipo);

        ddlSubtipo.SelectedValue = obj.IdSubtipo.ToString();
        ddlRepresentante.SelectedValue = obj.IdRepresentante.ToString();

    }

    protected void ddlTipo_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            if (Page.AutoPostBackControl == ddlTipo)
            {
                int idTipo = 0;
                int.TryParse(ddlTipo.SelectedValue, out idTipo);
                cargarSubtipo(idTipo);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void cargarCombos()
    {
        cargarTipo();
        cargarRepresentante();
        agregarSeleccionCombo(ddlSubtipo);
    }

    private void cargarTipo()
    {

        List<EspTipoEspectaculo> lista = EspTipoEspectaculoBLL.ListarTipoEspectaculo(1);
        ddlTipo.DataSource = lista;
        ddlTipo.DataTextField = "Tipo";
        ddlTipo.DataValueField = "IdTipo";
        ddlTipo.DataBind();
        agregarSeleccionCombo(ddlTipo);
    }

    private void cargarSubtipo(int idTipo)
    {
        ddlSubtipo.Items.Clear();
        List<EspSubTipoEspectaculo> lista = EspTipoEspectaculoBLL.ListarSubTipoEspectaculo(idTipo, 1);
        ddlSubtipo.DataSource = lista;
        ddlSubtipo.DataTextField = "SubTipo";
        ddlSubtipo.DataValueField = "IdSubTipo";
        ddlSubtipo.DataBind();
        agregarSeleccionCombo(ddlSubtipo);

    }

    private void cargarRepresentante()
    {

        List<EspRepresentante> lista = EspRepresentanteBLL.ListarRepresentante(1);
        ddlRepresentante.DataSource = lista;
        ddlRepresentante.DataTextField = "RazonSocial";
        ddlRepresentante.DataValueField = "IdRepresentante";
        ddlRepresentante.DataBind();
        agregarSeleccionCombo(ddlRepresentante);
    }

    public static void agregarSeleccionCombo(DropDownList _ddList)
    {
        ListItem item = new ListItem();
        item.Value = (-1).ToString();
        item.Text = "-- Seleccione --";
        _ddList.Items.Insert(0, item);
    }

    protected void btnGrabar_Click(object sender, EventArgs e)
    {
        try
        {
            EspArtista obj = new EspArtista();
            int id = 0;
            int.TryParse(hdIdartista.Value, out id);

            obj.IdArtista = id;
            obj.IdRepresentante = Convert.ToInt32(ddlRepresentante.SelectedValue);
            obj.IdSubtipo = Convert.ToInt32(ddlSubtipo.SelectedValue);
            obj.Estado = chkActivo.Checked ? 1 : 0;
            obj.Correo = txtCorreo.Text;
            obj.Direccion = txtDireccion.Text;
            obj.Nombre = txtNombre.Text;
            obj.Observacion = txtobservacion.Text;
            obj.Referencia = txtReferencia.Text;
            obj.Telefono = txtTelefono.Text;

            int result = 0;
            if (id == 0)
            {
                result = EspArtistaBLL.AgregarArtista(obj);
                if (result > 0)
                {
                    //ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('La operación se realizó correctamente.');", true);
                    Response.Redirect("frmRegistroArtista.aspx?id=" + result.ToString() + "&ref=reg");
                }
                else if (result ==-1 )
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('El nombre del artista ingresado ya existe.');", true);
                }
                else
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('Ocurrió un problema.');", true);

                }
            }
            else
            {
                result = EspArtistaBLL.ModificarArtista(obj);

                if (result > 0)
                {
                    Response.Redirect("frmRegistroArtista.aspx?id=" + id.ToString() + "&ref=reg");
                }
                else if (result == -1)
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('El nombre del artista ingresado ya existe.');", true);
                }
                else
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('Ocurrió un problema.');", true);

                }
            }


        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("frmArtista.aspx");
    }
}